Skip to content

[codex] Add quantics transform parity wrappers#28

Merged
shinaoka merged 3 commits intomainfrom
feat/quantics-transform-parity
Apr 6, 2026
Merged

[codex] Add quantics transform parity wrappers#28
shinaoka merged 3 commits intomainfrom
feat/quantics-transform-parity

Conversation

@shinaoka
Copy link
Copy Markdown
Member

@shinaoka shinaoka commented Apr 6, 2026

Summary

  • expose Rust parity for quantics transform wrappers in Julia
  • add grouped quantics-grid unfolding and top-level grid exports
  • add quantics transform/grid regression tests and refresh the README/PR workflow notes

What changed

  • added C bindings and Julia wrappers for multivariable shift/flip/phase, affine, binary-op, and input/output space remapping
  • exported DiscretizedGrid, InherentDiscreteGrid, and localdimensions from the top level and added :grouped unfolding support
  • added MPS(::SimpleTensorTrain) so high-level quantics transform examples can materialize valid input states
  • updated README.md to remove outdated TensorCI examples and document the current quantics APIs
  • updated AGENTS.md to require a README review before opening or updating a PR

Validation

  • TENSOR4ALL_RS_PATH=/home/shinaoka/tensor4all/tensor4all-rs/.worktrees/feat-quanticstransform-capi julia --startup-file=no --project=/home/shinaoka/tensor4all/Tensor4all.jl /home/shinaoka/tensor4all/Tensor4all.jl/deps/build.jl
  • julia --startup-file=no --project=/home/shinaoka/tensor4all/Tensor4all.jl -e 'using Test, Tensor4all; include("/home/shinaoka/tensor4all/Tensor4all.jl/test/test_quanticsgrids.jl"); include("/home/shinaoka/tensor4all/Tensor4all.jl/test/test_quanticstransform.jl")'
  • julia --startup-file=no --project=/home/shinaoka/tensor4all/Tensor4all.jl -e 'using Tensor4all; using Tensor4all.SimpleTT; using Tensor4all.TreeTN; using Tensor4all.QuanticsTransform; using Tensor4all.QuanticsGrids: origcoord_to_quantics, quantics_to_origcoord; tt = SimpleTensorTrain([2,3,4], 1.0); @assert tt(0,0,0) == 1.0; @assert Tensor4all.SimpleTT.site_dims(tt) == [2,3,4]; grid = DiscretizedGrid(2, [2,2], [0.0,0.0], [1.0,1.0]; unfolding=:grouped); q = origcoord_to_quantics(grid, [0.25,0.75]); x = quantics_to_origcoord(grid, q); @assert length(q) == 4; @assert x[1] isa Float64; mps = MPS(SimpleTensorTrain([2,2,2], 1.0)); op = shift_operator(3, 1); set_iospaces!(op, mps); shifted = apply(op, mps; method=:naive); @assert length(shifted) == 3; multi = shift_operator_multivar(3, 1, 2, 0); flipped = flip_operator_multivar(3, 2, 1; bc=Open); phase = phase_rotation_operator_multivar(3, pi / 4, 2, 1); aff = affine_operator(3, Int64[1 -1; 1 0; 0 1], ones(Int64, 3, 2), Int64[0,0,0], ones(Int64, 3); bc=[Open, Periodic, Periodic]); println("README snippets ok")'
  • T4A_SKIP_HDF5_TESTS=1 julia --startup-file=no --project=/home/shinaoka/tensor4all/Tensor4all.jl /home/shinaoka/tensor4all/Tensor4all.jl/test/runtests.jl

@shinaoka shinaoka marked this pull request as ready for review April 6, 2026 10:08
@shinaoka shinaoka merged commit afa00ea into main Apr 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant